Cloud computing refers to network-based computing in which collections of servers housed in data centers provide computational resources and data storage as needed to end users. Many cloud computing services allow end users to execute software applications in virtual machines or other environments within the cloud. The network bandwidth for the applications and attendant storage may vary for each end user and for each application process that is executed.
A cloud computing provider must build a relatively large physical infrastructure from which cloud computing services may be offered to end users. Because the cost of such physical infrastructure can be enormous, the provider often strives to provide efficient utilization of physical resources to reduce the cost. Accordingly, a provider will often employ various rules and frameworks for allocating physical resources, such as processing cores, storage space, etc. Likewise, the provider will employ various rules and frameworks for allocating other resources, such as bandwidth. While the employment of such rules and frameworks may result in a more efficient allocation of resources, the rules and frameworks also impose an overhead cost on the provider, e.g., resources such as cores, storage and bandwidth are consumed to implement the rules and frameworks.